package com.ives.launcher.logic;

import android.view.View;
import android.view.ViewGroup;

import com.ives.launcher.view.View_Drag;

/**
 * Interface for initiating a drag within a view or across multiple views.
 * 拖动控制器，监听一个拖动动作的全部过程
 */
public interface DragController {
	void startDrag(View v, DragContainer source,int dragType);
	/**
     * DragContorller将维护一个监听拖动生命周期的队列
     * 拖动过程生命周期监听器,只要实现此监听器并添加到Controller,就会在各个生命周期调用对应的方法
	 * @author ives
	 *
	 */
	public interface DragLifeListener{
		/**
		 * 拖动开始
		 * @param drag 拖动源
		 * @param dragType 拖动类型
		 */
		public void drag_Start(View_Drag drag,int dragType);
		/**
		 * 拖动结束
		 * @param drag
		 */
		public void drag_Over(View_Drag drag);
		/**
		 * 拖动过程中
		 * @param drag
		 */
		public void drag_Dragging(View_Drag drag);
		/**
		 * 容器切换
		 * @param drag
		 */
		public void drag_ContainerChange(View_Drag drag);
		
	}
}
